查看原文
其他

Linux 多个发行版本被曝存在7年之久的提权漏洞

Thomas Claburn 代码卫士 2022-05-23

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士


上周,影响Linux 多个发行版本的一个已存在7年之久的提权漏洞被修复。


上周四,GitHub 的安全研究员 Kevin Backhouse 发布博客文章表示自己从与常见的 Linux 系统和服务管理器组件 system 相关链的服务 polkit 中找到了一个 bug (CVE-2021-3560)。

该 bug 首次在7年前的 commit bfa5036 中引入,现身于 polkit版本 0.113 中,影响 Linux 的多个发行版本。例如,虽然并不影响 Debian 10 但影响 Debian 不稳定版本。

Polkit 此前被称为 PolicyKit,用于评估特定的 Linux 活动是否要求高于当前的权限,当用户尝试创建新的用户账户时就会用到这一功能。

Backhouse 指出,该漏洞极其易于利用,仅要求使用标准终端工具的命令如 bash、kill 和 dbus-send。Backhouse 解释称,“开始 dbus-send 命令时会触发该漏洞,而杀死该命令时 polkit 仍然正在处理该请求。”在认证请求过程中杀死 dbus-send(进程间通信命令)会引发 polkit 发生错误,因为它要求提供不再存在的某个连接的 UID(该连接已被杀死)。

Backhouse 解释称,“实际上,polkit 以非常遗憾的方式错误地处理了该错误,它并未拒绝该请求,而是将该请求当作源自 UID 为0的进程。换句话说,它立即授权该请求,原因时以为该请求源自 root 进程。”

这种情况并不是一直都会发生,因为 dbus-daemon 的 polkit UID 查询在不同的代码路径中发生了多次。通常而言,这些代码路径会正确地处理该错误,但一个代码路径易受攻击,而且如果在代码路径仍然活跃的情况下发生链接断开的情况,则会发生提权。这种情况的发生只是一个时间问题,由于涉及多种进程,因此发生的情况不可预知。

Backhouse 认为该 bug 断断续续的情况应该是7年后才被检测到的原因。


受影响版本


安装了 polkit 版本0.113或后续版本的 Linux 系统如 Debian(不稳定版)、RHEL 8、Fedora 21+ 和 Ubuntu 20.04 均受影响。

Backhouse 表示,“CVE-2021-3560 使低权限的本地攻击者可获得 root 权限。该漏洞非常易于且快速利用,因此用户应尽快更新 Linux 版本。”






推荐阅读
Linux 内核漏洞暴露栈内存,造成数据泄露
CVE-2021-20226:详解 Linux 内核 IO_URING 子系统中的引用计数漏洞
开源包管理器Homebrew被曝 RCE,影响 macOS 和 Linux 系统




原文链接

https://www.theregister.com/2021/06/11/linux_polkit_package_patched/


题图:Pixabay License



本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

    觉得不错,就点个 “在看” 或 "” 吧~



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存